/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.emp.solbrillante.sales.dao;

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList;
import pe.emp.solbrillante.sales.bean.Detalle_pedido;
import pe.emp.solbrillante.sales.bean.Pedido;

/**
 *
 * @author Ronald
 */
public class MySQLDetalle_pedidoDAO implements Detalle_pedidoDAO {
    
          //coneccion ala base de datos
      String connectionUrl = "jdbc:mysql://localhost/prueba_entidadr?" +
                                   "user=adminsamaydev&password=123456";
      
    @Override
    public ArrayList<Object> queryLineaDetallePedido(int idpedido) {
  
            ArrayList<Object> tabla   = new ArrayList<Object>();        
                
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            String calling;
 
            try {
                //1. Se registra el driver de la BD
                Driver myDriver = new com.mysql.jdbc.Driver();
                //2. Se abre la conexión
            
                conn = DriverManager.getConnection(connectionUrl);

                //3. Se ejecuta la sentencia SQL  
                
            //3. Se ejecuta la sentencia SQL
               calling = "{call prueba_entidadr.sp_get_lineaDetallePedido("+idpedido+")}";
               
               pstmt = conn.prepareStatement(calling);
               rs =  pstmt.executeQuery();
            
                //4. Se evalúan los resultados
               
//               select dpe.idpedido_det_fk as pedido
//,dpe.idpaquete_fk as idpaquete
//,pro.nombre as paquete
//,dpe.cantidad as cantidad_paquetes
//,dpe.subtotal as stotal_fila
//,dpe.cantidad_recibida as cantidad_recibida
               while (rs.next()){                
                   
                int idpedidoDetalle = rs.getInt("pedido");
                int idpaquete = rs.getInt("idpaquete");
                String paquete = rs.getString("paquete");
                Double sub_total = rs.getDouble("stotal_fila");
                int cantidadxpaq = rs.getInt("cantidad_paquetes");                
                int cantidadxpaq_pendiente = rs.getInt("cantidad_recibida");
                
                Object[] fila = new Object[6];                                  
                                  fila[0] = idpedidoDetalle;
                                  fila[1] = idpaquete;
                                  fila[2] = paquete;
                                  fila[3] = sub_total;
                                  fila[4] = cantidadxpaq;
                                  fila[5] = cantidadxpaq_pendiente;
                         tabla.add(fila);
                   
                       }

            } catch(Exception e){
                e.printStackTrace();
            }   finally {
                try { if (rs!= null) rs.close();}  catch(Exception e) {e.printStackTrace();}
                try { if (pstmt!= null) pstmt.close();}  catch(Exception e) {e.printStackTrace();}
                try { if (conn!= null) conn.close();}  catch(Exception e) {e.printStackTrace();}
            }          
            
            return tabla;  
    }     

    @Override
    public int queryInsertaLineaDetallePedido(int indice_nuevo_pedido, int cantPedida, Float subtotal, int codPaquete) {
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;            
            String calling;
            
        try {
            //1. Se registra el driver de la BD
      
            Driver myDriver = new com.mysql.jdbc.Driver();
            
            //2. Se abre la conexión     

            conn = DriverManager.getConnection(connectionUrl);
            
            //3. Se ejecuta la sentencia SQL
            calling = "{call prueba_entidadr.sp_inserta_lineaDetallePedido("+codPaquete+","+cantPedida+","+subtotal+","+indice_nuevo_pedido+")}";
            
            System.out.println("CALL: "+calling);
            pstmt = conn.prepareStatement(calling);            
            
            rs =  pstmt.executeQuery();
            
            //4. Se evalúan los resultados
            
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
             //5. Se cierra la conexión
             try {if (rs != null) rs.close(); } 
             catch(Exception e){e.printStackTrace();}  
        } 

            return 1;
    }

    @Override
    public int queryUpdateLineaDetallePedido(int codPedido, int codPaquete, int cantPendiente) {
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;            
            String calling;
            
        try {
            //1. Se registra el driver de la BD
      
            Driver myDriver = new com.mysql.jdbc.Driver();
            
            //2. Se abre la conexión     

            conn = DriverManager.getConnection(connectionUrl);
            
            //3. Se ejecuta la sentencia SQL
            calling = "{call prueba_entidadr.sp_update_lineaDetallePedido("+codPedido+","+codPaquete+","+cantPendiente+")}";
            
            System.out.println("CALL: "+calling);
            pstmt = conn.prepareStatement(calling);            
            
            rs =  pstmt.executeQuery();
            
            //4. Se evalúan los resultados
            
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
             //5. Se cierra la conexión
             try {if (rs != null) rs.close(); } 
             catch(Exception e){e.printStackTrace();}  
        } 

            return 1;
    }
    
    }
    

